package com.hbase;

import com.until.HBUtils;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;

/**
 * @Author：YuanHaHa
 * @Date：2024/7/5 22:07
 */
public class ScanData {
    public static void main(String[] args) throws IOException {
        // 获取 Hbase 连接对象
        Connection connection = HBUtils.getConnection();
        // 获取 表对象
        Table table = connection.getTable(TableName.valueOf("Person"));
        // 构建扫描对象
        Scan scan = new Scan();
        ResultScanner results = table.getScanner(scan);
        // 遍历扫描结果对象
        for (Result result : results) {
            // 获取单元格数组
            Cell[] cells = result.rawCells();
            // 从单元格数组中遍历得到数据
            for (Cell cell : cells) {
                // 一般使用 CellUtils 获取数据
                // 获取 rowKey
                String rowKey = Bytes.toString(CellUtil.cloneRow(cell));
                // 获取 列族
                String cf = Bytes.toString(CellUtil.cloneFamily(cell));
                // 获取 列名
                String cn = Bytes.toString(CellUtil.cloneQualifier(cell));
                // 获取 对应列的值
                String value = Bytes.toString(CellUtil.cloneValue(cell));
                System.out.println(
                        "[" +  rowKey + "," + cf + "," + cn + "," + value + "]"
                );
            }
        }
        // 释放链接
        HBUtils.release( connection,null);
    }
}
